<?php
/**
 * Created by PhpStorm.
 * User: 123
 * Date: 2020/7/7
 * Time: 17:40
 */

namespace base;



class Arrpage{
    public $pageArray=array(); //数组
    public $pageSize=10; //每页显示记录数
    public $current= 1; //当前页
    private $total=0; //总页数
    private $prev=0; //上一页
    private $next=0; //下一页
    public $argumetsOther='';//设置参数
    function __construct($array=array(),$pageSize=10,$current=1){
        $this->pageArray=$array;
        $this->pageSize=$pageSize;
        $this->current=$current;
    }
    /*通过数组进行初始化
    *
    * 数组为关联数组,参数索引为pageArray,pageSize,current
    *
    */
    function setArguments($arr){
        if (is_array($arr)){
            $this->pageArray=$arr['pageArray'];
            $this->pageSize=$arr['pageSize'];
            $this->current=$arr['current'];
        }else{
            return ;
        }
    }
    //返回链接
    function page(){
        $_return=array();
        /*calculator*/
        $this->total=ceil(Count($this->pageArray)/$this->pageSize);
        $this->prev=(($this->current-1)<= 0 ? "1":($this->current-1));
        $this->next=(($this->current+1)>=$this->total ? $this->total:$this->current+1);
        $current=($this->current>($this->total)?($this->total):$this->current);
        $start=($this->current-1)*$this->pageSize;
        $arrleng=count($this->pageArray);
        for($i=$start;$i<($start+$this->pageSize);$i++){
            if($i >= $arrleng)break;
            array_push($_return,$this->pageArray[$i]);
        }
        $pagearray["source"]=$_return;
        $pagearray["links"]=$this->linkStyle(2);
        return $pagearray;
    }
    //链接的样式
    private function linkStyle($number=1){
        $linkStyle='';
        switch ($number){
            case 1:
                $linkStyle="<a href=\"?page=1\">first</a> <a href=\"?page={$this->prev}\">prev</a> <a href=\"?page={$this->next}\">next</a> <a href=\"?page={$this->total}\">end</a>";
                break;
            case 2:
                $linkStyle="<a href=\"?page=1&{$this->argumetsOther}\">首页</a> <a href=\"?page={$this->prev}&{$this->argumetsOther}\">上一页</a> <a href=\"?page={$this->next}&{$this->argumetsOther}\">下一页</a> <a href=\"?page={$this->total}&{$this->argumetsOther}\">尾页</a>";
                break;
        }
        return $linkStyle;
    }
}